Saltar al contenido principal

Punto final ROI recortado (solo clasificación)

Overview

El cropped_roi endpoint proporciona acceso a Regiones de Interés (ROI) recortadas generadas a partir de resultados de clasificación en Haystack que se ejecuta en el dispositivo.

Importante: Este endpoint funciona solo para resultados de tipo clasificación. El tipo de segmentación no es compatible para el recorte de ROI a través de este endpoint.

El formato base de la URL es:

http://{device-ip}/edge/haystack/cropped_roi/{classification_result_id}

Cómo Funciona

Cuando la cámara completa una captura de clasificación, el flujo de Node-RED genera dinámicamente URLs para las imágenes ROI recortadas al emparejar la IP del dispositivo y el ID del resultado de clasificación:

const imageUrl = `http://${baseUrl}/edge/haystack/cropped_roi/${result.id}`;

Cada URL sirve una imagen recortada que corresponde a una ROI de clasificación individual, típicamente que representa una única inspección.


Resumen del flujo de Node-RED

El flujo ROI_Crop realiza lo siguiente:

  1. Extrae la IP del dispositivo

    • Analiza el campo image_url para localizar la IP (p. ej., 192.168.0.101)
    • La almacena globalmente para su reutilización
  2. Consulta los datos de captura más recientes

    • Envía una solicitud GET a la API PostgREST del dispositivo:

      http://{device-ip}/postgrest/captures?select=...
      &order=id.desc&limit=1
    • Recupera la captura más reciente y todas las entradas de classification_result

  3. Filtra solo resultados de clasificación

    • Omite resultados de segmentación o alineación

    • Itera sobre cada resultado de clasificación:

      classificationResults.forEach(result => {
      const roiName = result.roi_result?.inspection_region?.name || `ROI_${result.id}`;
      const imageUrl = `http://${baseUrl}/edge/haystack/cropped_roi/${result.id}`;
      imageMap[roiName] = imageUrl;
      });
  4. Genera las URL de ROI recortados

    • Guarda todos los enlaces de imágenes ROI en un mapa global imageMap
    • Devuelve la lista de las últimas URL de ROI recortados

image1.png

image2.png

Uso de ejemplo

Obtener una imagen ROI recortada

curl http://192.168.0.101/edge/haystack/cropped_roi/42 -o roi_42.jpg

Usar en una interfaz web

<img src="http://192.168.0.101/edge/haystack/cropped_roi/42" alt="Cropped ROI 42">

Ejemplo de salida

{
"ROI_1": "http://192.168.0.101/edge/haystack/cropped_roi/1",
"ROI_2": "http://192.168.0.101/edge/haystack/cropped_roi/2"
}

Parámetros

ParámetroTipoDescripción
device-ipstringDirección IP de la cámara (p. ej., 192.168.0.101)

Flujo de Integración

  1. Adquiere metadatos de la captura más reciente a través de /postgrest/captures.
  2. Identifica los IDs disponibles de classification_result.
  3. Construye URL de ROI recortadas para cada resultado.
  4. Muestra o descarga esas imágenes para análisis, datos de entrenamiento o inspección de calidad.

Descargar Flujo de Node-RED

  • ROI Crop Flow (JSON) - Flujo completo de Node-RED para la extracción de imágenes ROI recortadas
    • Importa este flujo directamente en Node-RED para acceder a ROIs de clasificación recortadas
    • Funciona con sistemas OV20i y OV80i